package com.my.test.design.strategy;

public class Test {

    /**
     * 定义一系列算法分别封装起来，让他们之间可以相互替换，算法的改变不会影响使用算法的用户
     * @param args
     */
    public static void main(String[] args) {

        // 参数不是一个具体策略，而是一个字符串表示类型
        //new PayContext("小李").payment("RMB");

        /**
         * if-else-if 优化办法
         *
         * 1、多态+map
         * 2、枚举
         * 3、数组
         * 4、使用卫语句，将复杂的条件表达式拆分成多个条件表达式 if(xxxx){return;}
         *
         */
        //System.out.println("以下通过枚举的方式避免了if-else的分支");
        PayContext pay = new PayContext("小張");
        pay.payNow(PayEnum.DOLLAR);

        System.out.println(Activity.valueOf("NATIVE_APP"));
        /*for(Activity activity :Activity.values()){
            System.out.println(activity.getKey());
            System.out.println(activity.getLinkName());
            System.out.println(activity);
        }*/
    }
}
